

function Node(value) {
	this.value = value;
	this.next = null
}

var node1 = new Node(1);
var node2 = new Node(2);
var node3 = new Node(3);
var node4 = new Node(4);
var node5 = new Node(5);

node1.next = node2;
node2.next = node3;
node3.next = node4;
node4.next = node5;

//    1 -> 2 -> 3 -> 4 -> 5 ->null



//先写出口 再递归
function nizhi(root) {

	//获取链表的最后一个节点
	//if(root.next !== null) return nizhi(root.next);
	//else return root

//每一个节点都认为自己是根节点 即使他没有next
	if(root.next.next === null) {           //代表当前节点是倒数第二个节点
		root.next.next = root;         //让最后一个节点指向自己（倒数第二个节点）
		return root.next;               //返回最后一个
	} else {
		var result = nizhi(root.next);
		root.next.next = root;            //下一个的指向 指向自己
		root.next = null;               //第一个指向空  不然会和2循环
		return result
	}

}

var newRoot = nizhi(node1);

function Link(root) {
	if(root === null) return;
	console.log(root.value);
	Link(root.next)
}
Link(newRoot)

